<%-- 
    Document   : abonnements
    Created on : 5 oct. 2011, 10:57:45
    Author     : Antonin Mozzati & Yanick Schürter
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Tweetor : vos abonnements</title>
        <LINK rel=stylesheet type="text/css" href="style.css">
        <LINK rel=stylesheet type="text/css" href="menu.css">
        <script src="visibilite.js" type="text/javascript"></script>
    </head>

    <body>
        <div id="main">
            <div id="header">

                <!-- Login -->
                <jsp:include page="header/login.jsp"/>
                <jsp:include page="header/logo.jsp"/>
                <jsp:include page="header/menu.jsp"/>

            </div> <!-- header -->

            <%-- Liste des flux à afficher parametre --%>
            <c:set var="listeFluxAbo" value="${listeSuivis.getListFluxSuivi(sessionScope.sessionID, listeFlux)}" />


            <c:choose>
                <%-- si on visualise un flux --%>
                <c:when test="${!empty param.fid}">
                    <c:choose>

                        <c:when test="${listeFlux.estPublic(param.fid) || listeSuivis.suit(param.fid, sessionScope.sessionID)}">
                            <%-- Affichage du flux --%>
                            <c:set var="flux" value="${listeFlux.getById(param.fid)}" />
                            <%-- Titre --%>
                            <h1><c:out value="${flux.getTitreFlux()}" /></h1>
                            <%-- Bouton de désabonnement --%>
                            <form name="formulaireDesabonnement" action="abonnements.do" method="POST">
                                <input type="hidden" name="id_flux" value="<c:out value="${flux.id_flux}" />" />
                                <input type="submit" name="desaboSubmit" value="Se désabonner" />
                            </form>
                            <%-- Formulaire d'ajout d'une nouvelle si l'utilisateur peut poster --%>
                            <c:if test="${listeSuivis.peutPoster(param.fid, sessionScope.sessionID)}">
                                <p><a href="#" onclick="visibilite('formAjoutNouvelle');">Publier une nouvelle</a></p>
                                <!-- Affichage de l'éventuelle erreur -->
                                <c:if test="${!empty requestScope.erreur}">
                                    <p id="erreur"><c:out value="${requestScope.erreur}" /></p>
                                </c:if>

                                <form id="formAjoutNouvelle" action="abonnements.do?fid=<c:out value="${flux.id_flux}"/>" method="post" style="display: none;">
                                    <table id="subscribe" border="0">
                                        <tr>
                                            <th colspan="2">Ajouter une nouvelle</th>
                                        </tr>
                                        <tr>
                                            <td>Titre</td>
                                            <td><input name="titre" type="text" size="20" maxlength="30" /></td>
                                        </tr>
                                        <tr>
                                            <td>Tags (<a title="Séparer chaque tag par un ';'">?</a>)</td>
                                            <td><input name="tags" type="text" size="20" maxlength="50" /></td>
                                        </tr>
                                        <tr>
                                            <td>Texte</td>
                                            <td><textarea name="texte" cols="45" rows="5"></textarea></td>
                                        </tr>
                                        <tr>
                                            <td colspan="2" align="center">
                                                <input type="hidden" name="id_flux" value="<c:out value="${flux.getId_flux()}" />" />
                                                <input type="submit" name="addNouvelleSubmit" value="Publier">
                                            </td>
                                        </tr>
                                    </table>
                                </form> <!-- formulaire ajout nouvelle -->
                            </c:if>

                            <%-- Liste des nouvelles --%>
                            <c:set var="nouvelles" value="${listeNouvelles.getByFlux(param.fid)}" />
                            <c:choose>
                                <c:when test="${empty nouvelles}">
                                    <%-- Si pas de nouvelles, message d'erreur --%>
                                    <em>Pas encore de nouvelles</em>
                                </c:when>
                                <c:otherwise>
                                    <%-- Si nouvelles, on les affiche --%>
                                    <c:forEach var="uneNouvelle" items="${nouvelles}">
                                        <div class="divNouvelle">
                                            <h3>
                                                <a href="abonnements.do?nid=<c:out value="${uneNouvelle.id_nouvelle}"/>"><c:out value="${uneNouvelle.getTitreNouvelle()}" /></a>
                                                <span class="date">(Publié le <c:out value="${uneNouvelle.getDateFR()}" />)</span>
                                            </h3>

                                            <%-- Affichage des tags --%>
                                            <p id="pTags"><u>Tags:</u>
                                            <c:set var="tags" value="${listeTagNouvelle.getByNouvelle(uneNouvelle.id_nouvelle)}" />
                                            <c:choose>
                                                <c:when test="${empty tags}">
                                                    <em>Aucun</em>
                                                </c:when>
                                                <c:otherwise>
                                                    <em>
                                                        <c:forEach var="tag" items="${tags}">
                                                            <a href="rechercherNouvelle.do?tag=<c:out value="${tag.getNomTagNouvelle()}" />">#<c:out value="${tag.getNomTagNouvelle()}" /></a>&nbsp;
                                                        </c:forEach>
                                                    </em>
                                                </c:otherwise>
                                            </c:choose>
                                            </p>
                                            <p><c:out value="${uneNouvelle.getTexteNouvelle()}" /></p>
                                        </div>
                                    </c:forEach>
                                </c:otherwise>
                            </c:choose>
                        </c:when>
                        <%-- Si le flux n'appartient pas à l'utilisateur ou n'existe pas --%>
                        <c:otherwise>
                            <%-- Message d'erreur --%>
                            <p id="erreur">Ce flux ne vous appartient pas ou n'existe pas!
                                <br /><a href="abonnements.do">Retour</a></p>
                            </c:otherwise>
                        </c:choose>
                    </c:when> 

                <c:otherwise>
                    <%-- si on visualise une nouvelle --%>
                    <c:choose>
                        <c:when test="${!empty param.nid}">
                            <c:set var="nouvelle" value="${listeNouvelles.getById(param.nid)}" />
                            <c:choose>
                                <%-- Si la nouvelle appartient à un flux public --%>
                                <c:when test="${(!empty nouvelle) && (listeFlux.estPublic(nouvelle.getId_flux()) || listeSuivis.suit(nouvelle.getId_flux(), sessionScope.sessionID))}">
                                    <%-- Affichage de la nouvelle --%>
                                    <div class="divNouvelle">
                                        <h3>
                                            <c:out value="${nouvelle.getTitreNouvelle()}" />
                                            <span class="date">(Publié le <c:out value="${nouvelle.getDateFR()}" />)</span>
                                        </h3>
                                        <%-- Affichage des tags --%>
                                        <p id="pTags"><u>Tags:</u>
                                        <c:set var="tags" value="${listeTagNouvelle.getByNouvelle(nouvelle.id_nouvelle)}" />
                                        <c:choose>
                                            <c:when test="${empty tags}">
                                                <em>Aucun</em>
                                            </c:when>
                                            <c:otherwise>
                                                <em>
                                                    <c:forEach var="tag" items="${tags}">
                                                       <a href="rechercherNouvelle.do?tag=<c:out value="${tag.getNomTagNouvelle()}" />">#<c:out value="${tag.getNomTagNouvelle()}" /></a>&nbsp;
                                                    </c:forEach>
                                                </em>
                                            </c:otherwise>
                                        </c:choose>
                                        </p>
                                        <p><c:out value="${nouvelle.getTexteNouvelle()}" /></p>
                                    </div>
                                </c:when>
                                <%-- Si la nouvelle n'appartient pas à l'utilisateur ou n'existe pas --%>
                                <c:otherwise>
                                    <%-- Message d'erreur --%>
                                    <p id="erreur">Cette nouvelle ne vous appartient pas ou n'existe pas!
                                        <br /><a href="abonnements.do">Retour</a></p>
                                    </c:otherwise>
                                </c:choose>
                            </c:when>	    
                            <c:otherwise>

                            <c:choose>
                                <c:when test="${empty listeFluxAbo}">
                                    Vous n'êtes abonné à aucun flux
                                </c:when>

                                <c:otherwise>
                                    <table id="tableFlux">
                                        <tr>
                                            <th width="80%">Flux</th>
                                            <th width="10%">Auteur</th>
                                            <th width="10%">Nouvelles</th>
                                        </tr>
                                        <c:forEach var="unFlux" items="${listeFluxAbo}" varStatus="i">
                                            <c:choose>
                                                <c:when test="${i.count % 2 == 0}"><tr></c:when>
                                                <c:otherwise><tr bgcolor="#F5E5C1"></c:otherwise>
                                                </c:choose>
                                                <td>
                                                    <a href="abonnements.do?fid=<c:out value="${unFlux.id_flux}"/>"><c:out value="${unFlux.titreFlux}"/></a>
                                            <br /><u>Tags:</u>
                                            <c:set var="tags" value="${listeTagFlux.getByFlux(unFlux.id_flux)}" />
                                            <c:choose>
                                                <c:when test="${empty tags}">
                                                    <em> Aucun</em>
                                                </c:when>
                                                <c:otherwise>
                                                    <em>
                                                        <c:forEach var="tag" items="${tags}">
                                                            #<c:out value="${tag.getNomTagFlux()}" />&nbsp;
                                                        </c:forEach>
                                                    </em>
                                                </c:otherwise>
                                            </c:choose>


                                            </td>
                                            <td><c:out value="${listeUtilisateur.getByID(unFlux.id_utilisateur).getLogin()}"/></td>
                                            <td align="center"><c:out value="${listeNouvelles.getNbByFlux(unFlux.id_flux)}"/></td>
                                            </tr>
                                        </c:forEach>
                                    </table>
                                </c:otherwise>
                            </c:choose>
                        </c:otherwise>
                    </c:choose>
                </c:otherwise>
            </c:choose>
        </div> <!-- main -->

    </body>
</html>
